An Extensible Markup Language (XML) Document Management (XDM) system is a universal enabler for various services in Open Mobile Alliance (OMA) standards. The XDM system is capable of storing and managing the data of various enablers.
As illustrated in FIG. 1, an XDM system primarily includes an XDM client 100, an aggregation proxy server 200, and XDM servers 300. The XDM client 100 is an entity with an access to different XDM servers, and may be a user equipment terminal or a server. When the XDM client 100 is a user equipment terminal, an XML Configuration Access Protocol (XCAP) request transmitted by the XDM client 100 is forwarded by the aggregation proxy server 200 to a corresponding XDM server 300. When being a server, the XDM client interacts directly with the XDM servers 300. The XDM client 100 manages XML documents stored in the XDM servers 300 via XCAP protocol.
The aggregation proxy server 200 is primarily adapted to provide the functions of, e.g. routing, authentication or charging and compression.
The XDM servers 300 store and manage XML documents for multiple XDM clients, and provide a notification message for an XDM client, which subscribes to a notification on a change of some documents, upon any change of the corresponding documents. The XDM servers 300 also provide an authentication function.
In the existing XDM system, the management and operations of the XDM client 100 on an XML document include:
(1) A creation or update operation: The XDM client 100 may transmit to an XDM server 300 an XCAP PUT request for creating or updating a document or an element or attribute in a document.
(2) A reading operation: The XDM client 100 may transmit to an XDM server 300 an XCAP GET request for retrieving a document or an element or attribute in a document.
(3) A deletion operation: The XDM client 100 may transmit to an XDM server 300 an XCAP DELETE request for deleting a document or an element or attribute in a document.
In addition to the above document management and operations, the XDM system is required in many cases to support a document recovery function of recovering the state of an XML document at a previous point of time from the state of the XML document at a point of time. For example, a user changes an XML document on an XDM server 300 through the XDM client 100, thereafter finds the misoperation, and wishes to recover the original state of the document prior to the change. Such a function can not be supported by the existing XDM system, which therefore limits the application for the user.